/**
  ******************************************************************************
  * @file    HCI_DSP_COM.h
  * @author  Feirui_Joe
  * @version V0.1
  * @date    07/26/2010
  * @brief   Outputs Driver
  ******************************************************************************
  * @copy
  *
  * <h2><center>&copy; COPYRIGHT 2010 Feirui</center></h2>
  */ 
#if defined (ComplexChinese)


/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef  __HCI_DSP_COM_H__
#define  __HCI_DSP_COM_H__


#ifdef __cplusplus
 extern "C" {
#endif


/**
  * @brief  INCLUDE FILES.
  */


/**
  * @brief GLOBALS RAM definition
  */
#ifdef   HCI_DSP_COM_GLOBALS
#define  HCI_DSP_COM_EXT
#else
#define  HCI_DSP_COM_EXT  extern
#endif


#define DEF_DspInvaildSta                   0xff
#define HCIPageLineHeight                   14

#define CurveShowColumnGap                  60
#define CalibShowColumnGap                  50


/*********************************************/
/* Cfg Display */
/*********************************************/
#define HCICfgRowParamNum                  7
#define HCICfgColumnOrd                    1

#define HCICfgRow1Ord                      0
#define HCICfgRow2Ord                      (HCICfgRow1Ord+1+HCIPageLineHeight+3)
#define HCICfgRow3Ord                      (HCICfgRow2Ord+2+HCIPageLineHeight)
#define HCICfgRow4Ord                      (HCICfgRow3Ord+2+HCIPageLineHeight)
#define HCICfgRow5Ord                      (HCICfgRow4Ord+2+HCIPageLineHeight)
#define HCICfgRow6Ord                      (HCICfgRow5Ord+2+HCIPageLineHeight)
#define HCICfgRow7Ord                      (HCICfgRow6Ord+2+HCIPageLineHeight)
#define HCICfgRow8Ord                      (HCICfgRow7Ord+2+HCIPageLineHeight)
#define HCICfgRow9Ord                      (HCICfgRow8Ord+1+HCIPageLineHeight)

#define HCIFrameLineOrd_Head               0xff


HCI_DSP_COM_EXT const uint16_t *GetFeatureLineParamListAdr(const DspCfgFeature_TypeDef *FeatureFrame,uint8_t ParamOrd);
HCI_DSP_COM_EXT const uint16_t *GetParamFeatureFrameAddress(const DspCfgFeature_TypeDef *FeatureFrame,uint8_t ParamOrd);

HCI_DSP_COM_EXT void HCICfgReverseDspByFeatureFrame(uint8_t CurLVSTR,uint8_t CurDspMode,uint8_t RVMode,const DspCfgFeature_TypeDef *FeatureFrame);
HCI_DSP_COM_EXT uint8_t HCICfgFullDisplayByFeatureFrame(uint8_t CurLVSTR,const DspCfgFeature_TypeDef *FeatureFrame,uint8_t LanguageOrd,uint8_t *ActInform);
HCI_DSP_COM_EXT uint8_t HCICfgDisplayMessage(const DspCfgFeature_TypeDef *FeatureFrame,uint8_t LanguageOrd,uint8_t *ActInform);




/*********************************************/
/* Base Display */
/*********************************************/

HCI_DSP_COM_EXT void SetDateClockDisplay(uint16_t Row,uint16_t Column,uint16_t *DigitalNumBuffer,uint8_t *TempClock,uint8_t LanguageOrd);

//HCI_DSP_COM_EXT void FillFixedUnicodeToBuffer(uint16_t *Buffer,uint16_t Unicode,uint8_t Num);
HCI_DSP_COM_EXT void TransferDataToBoldUnicode(uint16_t *Buffer,uint32_t Data,uint8_t NumLimit);
HCI_DSP_COM_EXT void InsertFixDecimalPoint(uint16_t *Buffer,uint8_t TOTNum,uint8_t Possition);
HCI_DSP_COM_EXT void InsertValueSign(uint16_t *Buffer,uint8_t TOTNum,uint8_t sign);
HCI_DSP_COM_EXT uint16_t * EmptyShowInvaildZero(uint16_t *Buffer,uint8_t NumLimit);
HCI_DSP_COM_EXT void TransferBoldToASCIICode(uint16_t *Buffer);
HCI_DSP_COM_EXT void TransferDataToASCIIUnicode(uint16_t *Buffer,uint32_t Data,uint8_t NumLimit);

HCI_DSP_COM_EXT void SetDisplayLanguageString(uint16_t Row,uint16_t Column,uint16_t StringOrd,uint8_t LanguageOrd);
HCI_DSP_COM_EXT void SetDisplayCharString(uint16_t Row,uint16_t Column,uint16_t *CharString);
HCI_DSP_COM_EXT void LCD_DisplayStringLine(uint16_t Row,uint16_t Column,const uint16_t *String);

HCI_DSP_COM_EXT void LCD_ReverseAny(uint16_t Row,uint16_t Column,uint8_t Width,uint8_t Height);
HCI_DSP_COM_EXT void LCD_EraseAny(uint16_t Row,uint16_t Column,uint8_t Width,uint8_t Height);
HCI_DSP_COM_EXT void LCD_ReverseLine(uint16_t Row,uint8_t Height);
HCI_DSP_COM_EXT void LCD_EraseLine(uint16_t Row,uint8_t Height);
HCI_DSP_COM_EXT void LCD_EraseFullLCD(void);
HCI_DSP_COM_EXT void LCD_FillRowLine(uint16_t Row,uint16_t Column,uint8_t Width);
HCI_DSP_COM_EXT void LCD_FillColumnLine(uint16_t Row,uint16_t Column,uint8_t Height);
HCI_DSP_COM_EXT void LCD_FillColumnDottedLine(uint16_t Row,uint16_t Column,uint8_t Height);

#ifdef __cplusplus
}
#endif


#endif   /*  __HCI_DSP_COM_H__  */
#endif
/******************* (C) COPYRIGHT 2010 Feirui *****END OF FILE****/